import { request } from "../../request/index";
import { rejeneratorRuntime } from "../../utils/asyncWx";
Page({
  data: {
    tabsData: [{
        name: '全部订单',
        isActive: true
      },
      {
        name: '待付款',
        isActive: false
      },
      {
        name: '待发货',
        isActive: false
      },
      {
        name: '退 款 / 退 货',
        isActive: false
      }
    ],
    // 请求的信息
    orders:[]
  },
  // 页面显示拿到参数发请求
  onShow(){
    // 先判断token是否存在不存在则需要提示先授权
    const token = wx.getStorageSync('token');
    if(!token) {
      // 先提示
      wx.showToast({
        title: '先授权购物车~',
        icon:'error'
      });
      // 之后因为是tabbar页面所以必须使用switchTab强制跳转
      wx.switchTab({
        url: '../shopCart/shopCart',
      })
      // 每次没有token都直接结束代码
      return
    }
    // onShow不同于onLoad的它没有事件对象要想拿到页面参数需要借助于小程序的
    // 页面栈而页面栈数组最多存储10个页面通过getCurrentPages()获取页面栈
    let pages = getCurrentPages();
    // 数组中最后一个值就是当前页面
    let thisPage = pages[pages.length -1];
    // 解构出值
    let {type} = thisPage.options;
    // 判断应该激活选中的标题
    this.changeTitleByIndex(type-1);
    // 调用请求方法
    this.getOrders(type);
  },
  // 请求收藏店铺信息
  async getOrders(type){
    const {orders} = await request({url:'my/orders/all',data:{type}});
    this.setData({
      orders:orders.map(v => ({...v,create_time_cn:(new Date(v.create_time*1000).toLocaleString())}))
    })
  },
  // 根据点击的模块来判断当前处于哪个tabs
  changeTitleByIndex(index){
    const {tabsData} = this.data; //解构出data中定义的tabsData数组
    //筛选整个tabsData把不是点击的那个isActive全部设置为false点击的为true
    tabsData.filter((v, i) => i === index ? v.isActive = true : v.isActive = false)
    //一切操作执行完毕后再重新赋值给tabsData
    this.setData({
      tabsData
    })
  },
  // 点击切换的tabs事件
  tabsItemChange(e) {
    const {index} = e.detail; //解构出事件触发者传递的index
    // 点击进来type值激活的
    this.changeTitleByIndex(index);
    // 当切换了tabs就重新根据type发送请求
    this.getOrders(index+1);
  },
})